<?php
// 应用公共文件

if (!function_exists('build_ranstr')) {
    /**
     * 获得随机字符串
     * @param $len             需要的长度
     * @param $special        是否需要特殊符号
     * @return string       返回随机字符串
     */
    function build_ranstr($len = 8, $special=false)
    {
        $chars = array(
            "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
            "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
            "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
            "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
            "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
            "3", "4", "5", "6", "7", "8", "9"
        );
    
        if($special){
            $chars = array_merge($chars, array(
                "!", "@", "#", "$", "?", "|", "{", "/", ":", ";",
                "%", "^", "&", "*", "(", ")", "-", "_", "[", "]",
                "}", "<", ">", "~", "+", "=", ",", "."
            ));
        }
    
        $charsLen = count($chars) - 1;
        shuffle($chars);                            //打乱数组顺序
        $str = '';
        for($i=0; $i<$len; $i++)
        {
            $str .= $chars[mt_rand(0, $charsLen)];    //随机取出一位
        }
        return $str;
    }
}

if(!function_exists('upload'))
{
    /**
     * 单图上传
     * @param   String  $name    字段名
     * @return  Array            文件上传结果数组   
     */
    function upload($name)
    {   
         try{
            $file = request()->file($name);

            if($file)
            {
                // 保存指定目录
                $FileName = \think\facade\Filesystem::disk('uploads')->putFile('uploads',$file);

                if($FileName)
                {
                    // 把\替换/
                    $FileName = str_replace('\\','/',$FileName);

                    // 返回数组
                    return ['code' => 1,'msg' => '上传成功','data' => $FileName];
                }
                
            }
         }catch(\Exception $e)
         {
            return ['code' => 0,'msg' => $e->getMessage(),'data' => []];
         }
    }
}